﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using PedidosPaquetesTuristicos.Soa_WebServices; 

namespace PedidosPaquetesTuristicos
{
    public partial class _Default : System.Web.UI.Page
    {
        public SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["PedidosTuristicos"].ConnectionString);

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CargaPagina();
                ddlDpto.Items.Insert(0, new ListItem());
                ddlDpto.Items[0].Text = "--Seleccione--";
                ddlDpto.Items[0].Value = String.Empty;
                ddlHotel.Items.Insert(0, new ListItem());
                ddlHotel.Items[0].Text = "--Seleccione--";
                ddlHotel.Items[0].Value = String.Empty;
                ddlTipoVuelo.Items.Insert(0, new ListItem());
                ddlTipoVuelo.Items[0].Text = "--Seleccione--";
                ddlTipoVuelo.Items[0].Value = String.Empty;
            }
        
        }
        protected void CargaPagina()
        {
            //Carga Departamento
            ddlDpto.DataTextField = "nom_ubigeo";
            ddlDpto.DataValueField = "coddpto";
            //
            SqlCommand com = new SqlCommand("SP_SEL_DEPT", cn);
            com.CommandType = CommandType.StoredProcedure;

            SqlDataAdapter da = new SqlDataAdapter(com);
            DataSet cli = new DataSet("cli");


            cn.Open();

            da.Fill(cli);

            cn.Close();

            if (cli.Tables[0].Rows.Count > 0)
            {
                ddlDpto.DataSource = cli.Tables[0];
                ddlDpto.DataBind();
            }
            //Carga Hotel
            ddlHotel.DataTextField = "Descripcion";
            ddlHotel.DataValueField = "Codigo";
            //
            SqlCommand com2 = new SqlCommand("SP_SEL_HOTEL", cn);
            com2.CommandType = CommandType.StoredProcedure;

            SqlDataAdapter da2 = new SqlDataAdapter(com2);
            DataSet Hot = new DataSet("Hotel");


            cn.Open();

            da2.Fill(Hot);

            cn.Close();

            if (Hot.Tables[0].Rows.Count > 0)
            {
                ddlHotel.DataSource = Hot.Tables[0];
                ddlHotel.DataBind();
            }
            //Carga Tipo Vuelo
            ddlTipoVuelo.DataTextField = "Descripcion";
            ddlTipoVuelo.DataValueField = "Cod_tip_vuelo";
            //
            SqlCommand com3 = new SqlCommand("SP_SEL_TIPOS_VUELO", cn);
            com3.CommandType = CommandType.StoredProcedure;

            SqlDataAdapter da3 = new SqlDataAdapter(com3);
            DataSet tipvue = new DataSet("TipoVuelo");


            cn.Open();

            da3.Fill(tipvue);

            cn.Close();

            if (Hot.Tables[0].Rows.Count > 0)
            {
                ddlTipoVuelo.DataSource = tipvue.Tables[0];
                ddlTipoVuelo.DataBind();
            }
        }

        protected void ddlDpto_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Carga Provincia
            ddlProv.DataTextField = "nom_ubigeo";
            ddlProv.DataValueField = "codprov";

            //
            SqlCommand com = new SqlCommand("SP_SEL_PROV", cn);
            com.CommandType = CommandType.StoredProcedure;
            com.Parameters.Add("@DEPT", SqlDbType.Int).Value = Convert.ToInt32(ddlDpto.SelectedValue);

            SqlDataAdapter da = new SqlDataAdapter(com);
            DataSet cli = new DataSet("cli");

            cn.Open();

            da.Fill(cli);

            cn.Close();

            if (cli.Tables[0].Rows.Count > 0)
            {
                ddlProv.DataSource = cli.Tables[0];
                ddlProv.DataBind();
                ddlProv.Items.Insert(0, new ListItem());
                ddlProv.Items[0].Text = "--Seleccione--";
                ddlProv.Items[0].Value = String.Empty;
            }
        }

        protected void ddlProv_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Carga Distrito
            ddlDist.DataTextField = "nom_ubigeo";
            ddlDist.DataValueField = "coddist";

            //
            SqlCommand com = new SqlCommand("SP_SEL_DIST", cn);
            com.CommandType = CommandType.StoredProcedure;
            com.Parameters.Add("@DEPT", SqlDbType.Int).Value = Convert.ToInt32(ddlDpto .SelectedValue);
            com.Parameters.Add("@PROV", SqlDbType.Int).Value = Convert.ToInt32(ddlProv.SelectedValue);

            SqlDataAdapter da = new SqlDataAdapter(com);
            DataSet cli = new DataSet("cli");

            cn.Open();

            da.Fill(cli);

            cn.Close();

            if (cli.Tables[0].Rows.Count > 0)
            {
                ddlDist.DataSource = cli.Tables[0];
                ddlDist.DataBind();
                ddlDist.Items.Insert(0, new ListItem());
                ddlDist.Items[0].Text = "--Seleccione--";
                ddlDist.Items[0].Value = String.Empty;
            }
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            Soa_WebServices.WebServiceRegistraCliente Registra = new WebServiceRegistraCliente();

            LblRespuesta.Text = String.Empty; 

            int Hotel= 0;
            int TipoVuelo = 0;
            int dpto = 0;
            int prov = 0;
            int dist = 0;
            if ( ddlHotel.SelectedValue != "") Hotel = Convert.ToInt32 (ddlHotel.SelectedValue);
            if ( ddlTipoVuelo.SelectedValue != "" ) TipoVuelo = Convert.ToInt32 (ddlTipoVuelo.SelectedValue);
            if ( ddlDpto.SelectedValue != "") dpto = Convert.ToInt32 (ddlDpto.SelectedValue);
            if ( ddlProv.SelectedValue != "") prov = Convert.ToInt32(ddlProv.SelectedValue);
            if (ddlDist.SelectedValue != "") dist = Convert.ToInt32(ddlDist.SelectedValue);
            DataSet Respuesta = Registra.SeleccionarPaquete ( Hotel ,TipoVuelo ,dpto ,prov,dist ); 

            if (Respuesta.Tables[0].Rows.Count > 0)
            {
                GvPaquetes.DataSource = Respuesta.Tables[0];
                GvPaquetes.DataBind();  
            }
            else
            {
                GvPaquetes.DataSource = Respuesta.Tables[0];
                GvPaquetes.DataBind();  
                LblRespuesta.Text = "No se encontraron coincidencias Favor de volver a intentar.";
            }
            
        }
    }
}
